﻿
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- saved from url=(0014)about:internet -->
<html xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:mssdk="winsdk" xmlns:script="urn:script" xmlns:build="urn:build" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="Description" content="The .fpo command controls the frame pointer omission (FPO) overrides."/>
<meta name="MSHAttr" content="PreferredSiteName:MSDN"/>
<meta name="MSHAttr" content="PreferredLib:/library/windows/hardware"/>
<title>.fpo (Control FPO Overrides)</title>

<meta name="MS-HAID" content="r20_metacmds_E_db758fac-48bf-4ef3-8ec1-0ddc0322e826.xml"/>


<link rel="STYLESHEET" type="text/css" HREF="../common/backsdk4.css"/>





<style>
html,div { margin: 0; padding: 0;}

body {
	padding: 0px;
	margin: 0px;
	overflow: auto;
	height: 100%;
}

#winchm_template_button{
	float: right;
	width: 93px;
	top: 7px;
	position: relative;
	text-align: right;
	right: 5px;
	height: auto;
}

#winchm_template_top{
	padding: 0px;
	margin: 0px;
	border-bottom: 1px solid #9B9B9B;
	background-color: #B1CEFE;
}

#winchm_template_navigation{
	margin: 0px;
	padding-top: 7px;
	padding-left: 7px;
	padding-bottom: 3px;
	padding-right: 0px;
	font-size: 8.5pt;
	font-family: Arial, Helvetica, sans-serif;
	font-weight: normal;
	color: #585858;
}

#winchm_template_title{
	margin: 0px;
	padding-top: 4px;
	padding-left: 7px;
	padding-bottom: 7px;
	padding-right: 0px;
	font-size: 18px; 
	font-family: Verdana, Geneva, sans-serif;
	color: #363636;
}

#winchm_template_content{
	margin-top: 20px;
	margin-left: 15px;
	margin-bottom: 20px;
	margin-right: 15px;
	width: auto  !important;
	width: 100%;
}

#winchm_template_footer{
	border-width: 1px;
	border-color: #B1CEFE;
	border-top-style: solid;
	margin-top: 15px;
	margin-left: 15px;
	margin-bottom: 20px;
	margin-right: 15px;
	padding-top: 7px;
	padding-left: 0px;
	padding-bottom: 0px;
	padding-right: 0px;
	font-family: arial, helvetica, sans-serif;
	font-size: 8.5pt;
	color: #696969;
	width: auto;
	text-align: left;
}


#winchm_template_container{
	margin: 0px;
	padding: 0px;
	position: static;
	padding-bottom: 3px;
	overflow: auto;
	background-color: #FFFFFF;
}


@media print
{
#winchm_template_container{
	position: static;	
	margin: 0px;
	padding: 5px;
	
	width: auto;
	height: auto;
	overflow: auto;
}
#winchm_template_button{
visibility:hidden;
}
}

#winchm_template_navigation A:link	{text-decoration: none; color:#004080}
#winchm_template_navigation A:visited  {text-decoration: none; color: #004080}
#winchm_template_navigation A:active {text-decoration: none; color: #004080 }
#winchm_template_navigation A:hover {text-decoration: none;color: #0080FF}

A:link	{text-decoration: underline; color:#0033CC}
A:visited  {text-decoration: underline; color: #0033CC}
A:active {text-decoration: underline; color: #0033CC }
A:hover {text-decoration: underline;color: #FF0000;}
</style>
<script type="text/javascript">
function isMobile(){
Agent = window.navigator.userAgent;
if (Agent.indexOf("iPhone")>=1 || Agent.indexOf("iPad")>=1 || Agent.indexOf("iPod")>=1 || Agent.indexOf("Android")>=1){
return true;
}else{
return false;	
}

}
function d_onresize(){
if (window.navigator.userAgent.indexOf("MSIE")>=1){
document.getElementById('winchm_template_container').style.pixelWidth = document.body.offsetWidth - 3;
document.getElementById('winchm_template_container').style.pixelHeight = document.body.offsetHeight - document.getElementById('winchm_template_top').offsetHeight - 4;
}
document.getElementById('winchm_template_container').style.top = document.getElementById('winchm_template_top').offsetHeight + 'px';
}

function d_onbeforeprint(){
document.getElementById('winchm_template_container').style.width = 'auto';
document.getElementById('winchm_template_container').style.height = 'auto';
}

function d_onafterprint(){
d_onresize();
}

if(!isMobile()){

window.onload = d_onresize;
window.onresize = d_onresize;
window.onbeforeprint = d_onbeforeprint;
window.onafterprint = d_onafterprint;

document.write("<style>\n");
document.write("body {overflow: hidden;}\n");
document.write("#winchm_template_container {position: absolute;overflow: auto;top : 0px;right: 0px;bottom: 0px;left: 0px;}\n");
document.write("</style>\n");
}

</script>
</head>
<body><script language="JavaScript" type="text/JavaScript">
function syn(){
if(parent.nav.tree){
 if(parent.nav.tree.loaded){
  parent.nav.tree.selectNode(2116);
 }else{
  setTimeout("syn()",500);
}
  }else{
  setTimeout("syn()",500);
  }}
if(parent!=self){
  setTimeout("syn()",100);
}else{
  parent.location.href = "../../index.htm?page=debugger/_fpo__control_fpo_overrides_.htm";
}
originalOnload = window.onload;
if(originalOnload==null){
window.onload = function(){parent.contentLoaded = true;};
}else{
window.onload = function(){originalOnload();parent.contentLoaded = true;};
}
</script> 


<div id="winchm_template_top">
	<div id="winchm_template_button"><A href="_formats__show_number_formats_.htm" title="Previous topic"><img id="winchm_template_prev" alt="Previous topic" src="../template2/btn_prev_n.gif" border="0"></a><A href="_frame__set_local_context_.htm" title="Next topic"><img id="winchm_template_next" alt="Next topic" src="../template2/btn_next_n.gif" border="0"></a></div>
	<div id="winchm_template_navigation">Help &gt; 
<A href="introduction6.htm">Debugging Tools for Windows (WinDbg, KD, CDB, NTSD)</A> &gt; <A href="debugger_reference.htm">Debugger Reference</A> &gt; <A href="debugger_commands.htm">Debugger Commands</A> &gt; <A href="meta_commands.htm">Meta-Commands</A> &gt; </div>
	<div id="winchm_template_title">.fpo (Control FPO Overrides)</div>
</div>
<div id="winchm_template_container">
	<div id="winchm_template_content"><div id="mainSection"><p>The <b>.fpo</b> command controls the frame pointer omission (FPO) overrides.</p>
<pre class="syntax">
    <b>.fpo -s </b>[<b>-f</b><i>Flag</i>]<b> </b><i>Address</i> 
<b>.fpo -d </b><i>Address</i> 
<b>.fpo -x </b><i>Address</i> 
<b>.fpo -o </b><i>Address</i> 
<b>.fpo </b><i>Address</i> 
</pre>
<h2><a id="ddk_meta_control_fpo_overrides_dbg"></a><a id="DDK_META_CONTROL_FPO_OVERRIDES_DBG"></a>Parameters</h2>
<p></p>
<dl>
<dt><a id="_______-s______"></a><a id="_______-S______"></a>       <b>-s</b>      </dt>
<dd>
<p>Sets an FPO override at the specified address.</p>
</dd>
<dt><a id="_______-fFlag______"></a><a id="_______-fflag______"></a><a id="_______-FFLAG______"></a>       <b>-f</b><i>Flag</i>      </dt>
<dd>
<p>Specifies FPO flags for the override. You must not add a space between <b>-f</b> and <i>Flag</i>. If the flag takes an argument, you must add a space between the flag and that argument. If you want multiple flags, you must repeat the <b>-f</b> switch (for example, <b>-fb -fp 4 -fe</b>). You can use the <b>-f</b> switch only with <b>-s</b>. You can use one of the following values for <i>Flag</i>.</p>
<table>
<tr>
<th>Flag</th>
<th>Effect</th>
</tr>
<tr>
<td>
<p><b>b</b></p>
</td>
<td>
<p>Sets <b>fUseBP</b> equal to <b>TRUE</b>.</p>
</td>
</tr>
<tr>
<td>
<p><b>e</b></p>
</td>
<td>
<p>Sets <b>fUseSEH</b> equal to <b>TRUE</b>.</p>
</td>
</tr>
<tr>
<td>
<p><b>n</b></p>
</td>
<td>
<p>Sets <b>cbFrame</b> equal to FRAME_NONFPO.  (By default, cbFrame is set to FRAME_FPO.)</p>
</td>
</tr>
<tr>
<td>
<p><b>l</b><b> </b><i>Term</i></p>
</td>
<td>
<p>Sets <b>cdwLocals</b> equal to <i>Term</i>. <i>Term</i> should specify the local DWORD count that you want.</p>
</td>
</tr>
<tr>
<td>
<p><b>p</b><b> </b><i>Term</i></p>
</td>
<td>
<p>Sets <b>cdwParams</b> equal to <i>Term</i>. <i>Term</i> should specify the parameter DWORD count that you want.</p>
</td>
</tr>
<tr>
<td>
<p><b>r</b><b> </b><i>Term</i></p>
</td>
<td>
<p>Sets <b>cbRegs</b> equal to <i>Term</i>. <i>Term</i> should specify the register count that you want.</p>
</td>
</tr>
<tr>
<td>
<p><b>s</b><b> </b><i>Term</i></p>
</td>
<td>
<p>Sets <b>cbProcSize</b> equal to <i>Term</i>. <i>Term</i> should specify the procedure size that you want.</p>
</td>
</tr>
<tr>
<td>
<p><b>t</b><b> </b><i>Term</i></p>
</td>
<td>
<p>Sets <b>cbFrame</b> equal to <i>Term</i>. <i>Term</i> should specify one of the following frame types:</p>
<ul>
<li>
<p>FRAME_FPO       0</p>
</li>
<li>
<p>FRAME_TRAP      1</p>
</li>
<li>
<p>FRAME_TSS       2</p>
</li>
<li>
<p>FRAME_NONFPO    3</p>
</li>
</ul>
</td>
</tr>
</table>
<p> </p>
</dd>
<dt><a id="_______Address______"></a><a id="_______address______"></a><a id="_______ADDRESS______"></a>       <i>Address</i>      </dt>
<dd>
<p>Specifies the address where the debugger sets or removes the override or the address whose overrides the debugger should display. This address must be within a module in the current module list.</p>
</dd>
<dt><a id="_______-d______"></a><a id="_______-D______"></a>       -<b>d</b>      </dt>
<dd>
<p>Removes the FPO overrides at the specified address.</p>
</dd>
<dt><a id="_______-x______"></a><a id="_______-X______"></a>       <b>-x</b>      </dt>
<dd>
<p>Removes all FPO overrides within the module that contains the <i>Address</i> address.</p>
</dd>
<dt><a id="_______-o______"></a><a id="_______-O______"></a>       <b>-o</b>      </dt>
<dd>
<p>Displays all FPO overrides within the module that contains the <i>Address</i> address.</p>
</dd>
</dl>
<h3><a id="Environment"></a><a id="environment"></a><a id="ENVIRONMENT"></a>Environment</h3>
<table>
<tr>
<td>
<p><b>
          Modes</b></p>
</td>
<td>
<p>User mode, kernel mode</p>
</td>
</tr>
<tr>
<td>
<p><b>
          Targets
         </b></p>
</td>
<td>
<p>Live, crash dump</p>
</td>
</tr>
<tr>
<td>
<p><b>
          Platforms
         </b></p>
</td>
<td>
<p>all </p>
</td>
</tr>
</table>
<p> </p>
<h2>Remarks</h2>
<p>Without parameters, the <b>.fpo</b> command displays the FPO overrides for the specified address.</p>
<p>Some compilers (including Microsoft Visual Studio 6.0 and earlier versions) generate FPO information to indicate how the stack frame is set up. During stack walking, the debugger uses these FPO records to understand the stack. If the compiler generated incorrect FPO information, you can use the <b>.fpo</b> command to fix this problem.</p></div></div>	
	<div id="winchm_template_footer">Copyright &copy; 2019. All rights 
reserved. (To change the copyright info, just edit it in template.)</div>
</div>

</body>
</html>
